
function numbersonly(e, f)
{
	var unicode = e.charCode ? e.charCode : e.keyCode;
	
	// jesli wcisnieto druga kropke albo znak nie jest cyfra ani klawiszem backspace ani escape
	if (
			((f.value.toString().indexOf('.').toString()) != "-1" && String.fromCharCode(unicode) == '.') ||
			((unicode != 8 && unicode != 27 && unicode != 46) && (unicode<48 || unicode>57 || unicode==190))
		)
	{
		f.style.backgroundColor = "#ff6a6a";
		setTimeout(function() {f.style.backgroundColor = "";}, 1000);
		return false;
	}
	
	f.style.backgroundColor = "";
}



function numbersonly_0_to_10(e,f)
{
	var returnValue = numbersonly(e,f);
	var unicode = e.charCode ? e.charCode : e.keyCode;
	
	if (returnValue == false)
	{
		return false;
	}
	
	var newValue = parseFloat(f.value.toString() + String.fromCharCode(unicode));
	
	if (newValue>10 || newValue<0)
	{
		f.style.backgroundColor = "#ff6a6a";
		setTimeout(function() {f.style.backgroundColor = "";}, 1000);
		return false;
	}
}



function applyFilters()
{
	var filterSelect = document.getElementById("filtrowanieselect");
	
	var parentNd = document.getElementById("inner-content-wyszukiwanie");
	var telefonyArray = getElementsByClassName(parentNd, "telefon");
	
	if (filterSelect.value == "pokazwszystkie")
	{
		for (var i=0; i<telefonyArray.length; i++)
		{
			telefonyArray[i].style.display = "block";
		}
	}
	else if (filterSelect.value == "pokazfiltry")
	{
		var cenaInputValue = parseFloat(document.getElementById("cenainput").value);
		var wyswietlaczInputValue = parseFloat(document.getElementById("wyswietlaczinput").value);
		var ramInputValue = parseFloat(document.getElementById("raminput").value);
		var procesorInputValue = parseFloat(document.getElementById("procesorinput").value);
		var aplikacjeSelectValue = document.getElementById("aplikacjeselect").value;
		var autofocusValue = document.getElementById("autofocus").checked;
		var gorillaGlassValue = document.getElementById("gorillaglass").checked;
		
		var tempTelefonyBooleanArray = new Array(); 
		
		for (var i=0; i<telefonyArray.length; i++)
		{
			telefonyArray[i].style.display = "none";
			tempTelefonyBooleanArray.push("true");
		}
		
		for (var i=0; i<telefonyArray.length; i++)
		{
			var cenaTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phonePrice")[0].innerHTML.replace(/^\s+|\s+$/g, ''));
			var wyswietlaczTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phoneScreenSize")[0].innerHTML.replace(/^\s+|\s+$/g, ''));
			var ramTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phoneRam")[0].innerHTML.replace(/^\s+|\s+$/g, ''));
			var procesorTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phoneProcClock")[0].innerHTML.replace(/^\s+|\s+$/g, ''));
			var aplikacjeTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phoneNrOfApp")[0].value);
			var autofocusTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phoneAutofocus")[0].innerHTML.replace(/^\s+|\s+$/g, ''));
			var gorillaGlassTelVal = parseFloat(getElementsByClassName(telefonyArray[i], "phoneGorillaglass")[0].innerHTML.replace(/^\s+|\s+$/g, ''));
			
			// jesli telefon jest drozszy niz wybrano, to odrzucamy go
			if (cenaInputValue!=0 && cenaTelVal>cenaInputValue)
					tempTelefonyBooleanArray[i] = "false";
			
			// jesli telefon ma mniejszy wy�wietlacz ni� wybrano, to odrzucamy go
			if (wyswietlaczInputValue!=0 && wyswietlaczTelVal<wyswietlaczInputValue)
					tempTelefonyBooleanArray[i] = "false";
			
			// jesli telefon ma mniej ramu ni� wybrano, to odrzucamy go
			if (ramInputValue!=0 && ramTelVal<ramInputValue)
					tempTelefonyBooleanArray[i] = "false";
			
			// jesli telefon ma gorszy procesor ni� wybrano, to odrzucamy go
			if (procesorInputValue!=0 && procesorTelVal<procesorInputValue)
					tempTelefonyBooleanArray[i] = "false";
			
			// odrzucamy telefony niepasujace iloscia aplikacji do wybranych parametrow
			if (aplikacjeSelectValue!="--- nieistotne ---")
			{
				if (aplikacjeSelectValue == "mnogosc" && aplikacjeTelVal<8.5)
					tempTelefonyBooleanArray[i] = "false";
				
				if (aplikacjeSelectValue == "srednio" && (aplikacjeTelVal<6.5 || aplikacjeTelVal>=8.5))
					tempTelefonyBooleanArray[i] = "false";
				
				if (aplikacjeSelectValue == "malo" && aplikacjeTelVal>=6.5)
					tempTelefonyBooleanArray[i] = "false";
			}
			
			// jesli telefon nie ma autofocusa, a wymaga tego uzytkownik, to odrzucamy go
			if (autofocusValue==true && autofocusTelVal!=1)
				tempTelefonyBooleanArray[i] = "false";
			
			// jesli telefon nie ma gorilla glass, a wymaga tego uzytkownik, to odrzucamy go
			if (gorillaGlassValue==true && gorillaGlassTelVal!=1)
				tempTelefonyBooleanArray[i] = "false";
		}
		
		var numOfVisibleTellies = 0;
		
		for (var i=0; i<telefonyArray.length; i++)
		{
			if (tempTelefonyBooleanArray[i] == "true")
			{
				telefonyArray[i].style.display = "block";
				numOfVisibleTellies++;
			}
		}
		
		if (numOfVisibleTellies==0 && document.getElementById("infoMessage")==null)
		{
			var infoMessage = document.createElement('p');
			infoMessage.id = "infoMessage";
			infoMessage.innerHTML = "Brak telefonów spełniających podane kryteria. Proszę zmienić parametry wyszukiwania.";
			
			document.getElementById("inner-content-wyszukiwanie").appendChild(infoMessage);
		}
		else if(numOfVisibleTellies!=0 && document.getElementById("infoMessage")!=null)
		{
			var p = document.getElementById("infoMessage");
			p.parentNode.removeChild(p);
		}
	}
	
	return false;
}



function getElementsByClassName(p, cn)
{
	var arr = new Array(); 
	var els = p.childNodes;
	var exp= new RegExp("^(.* )?"+cn+"( .*)?$", "g");
	
	for (var i = 0; i < els.length; i++ )
	{
		if (exp.test(els[i].className))
		{
			arr.push(els[i]);
		}
	}
	return arr;
}



function wszystkoWypelnione(thisForm)
{
	var returnValue = true;
	var propertiesArray = getAllElementsByClassName(thisForm, "mustNotBeEmpty");
	
	for (var i=0; i<propertiesArray.length; i++)
	{
		if (propertiesArray[i].value == "null" || propertiesArray[i].value == "")
		{
			returnValue = false;
		}
	}
	
	if (returnValue == false)
	{
		alert("Wszystkie pola muszą być wypełnione!");
		return false;
	}
}



function getAllElementsByClassName(p, cn)
{
	var arr = [];
	
	var els = p.childNodes;
	
	for (var i=0; i<els.length; i++)
	{
		elChildNodes = els[i].childNodes;
		
		arr.push(els[i]);
		
		if (elChildNodes.length > 0)
		{
			var tempArr = recurseAndAdd(els[i]);
			for (var j=0; j<tempArr.length; j++)
				arr.push(tempArr[j]);
		}
	}
	
	var retArr = [];
	var exp= new RegExp("^(.* )?"+cn+"( .*)?$", "g");
	
	for (var i=0; i<arr.length; i++)
	{
		if (exp.test(arr[i].className))
		{
			retArr.push(arr[i]);
		}
	}
	
	return retArr;
}



function recurseAndAdd(p)
{
	var arr = [];
	var els = p.childNodes;
	
//	alert(p + " has " + els.length + " children.");
	
	for(var i=0; i<els.length; i++)
	{
		arr.push(els[i]);
//		alert(els[i] + " added");
		
		var elsChildren = els[i].childNodes;
		
		if (elsChildren.length > 0)
		{
			var tempArr = recurseAndAdd(els[i]);
			for (var j=0; j<tempArr.length; j++)
				arr.push(tempArr[j]);
		}
	}
	
	return arr;
}



function changeContentBg()
{
	var allsuspects = document.getElementsByTagName("link");
	var content = document.getElementById('content');
	
	for (var i=allsuspects.length; i>=0; i--)
	{
		if (allsuspects[i] && allsuspects[i].getAttribute("href")!=null && document.getElementById('inner-content-wyszukiwanie')!=null)
		{
			if (allsuspects[i].getAttribute("href").indexOf("pure_style.css")!=-1)
			{
				content.setAttribute("Style", "background-image: url('images/contentbg_pure.png')");
			}
			if (allsuspects[i].getAttribute("href").indexOf("war_style.css")!=-1)
			{
				content.setAttribute("Style", "background-image: url('images/contentbg_war.png')");
			}
			if (allsuspects[i].getAttribute("href").indexOf("oldschool_style.css")!=-1)
			{
				content.setAttribute("Style", "background-image: url('images/contentbg_oldschool.png')");
			}
		}
	}
}



function ustawFiltrowanie(el)
{
	if (el.value == "pokazfiltry")
	{
		var wszystkietelsubmit = document.getElementById('wszystkietelsubmit');
		wszystkietelsubmit.parentNode.removeChild(wszystkietelsubmit);
		document.getElementById('filters').style.display = 'block';
		return false;
	}
	else
	{
		document.getElementById('filters').style.display = 'none';
		var wszystkietelsubmit = document.getElementById('wszystkietelsubmit');
		if (wszystkietelsubmit == null)
		{
			wszystkietelsubmit = document.createElement('input');
			wszystkietelsubmit.type = 'submit';
			wszystkietelsubmit.value = 'Zatwierdź filtry!';
			wszystkietelsubmit.id = 'wszystkietelsubmit';
			document.getElementById('firstFieldset').appendChild(wszystkietelsubmit);
		}
		return false;
	}
}


